// This file is part of OpenMeca, an easy software to do mechanical simulation.
//
// Author(s)    :  - Damien ANDRE  <openmeca@gmail.com>
//
// Copyright (C) 2012 Damien ANDRE
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.


#include <iostream>
#include <QMessageBox>

#include "OpenMeca/Core/AutomaticItem.hpp"
#include "OpenMeca/Core/UserChildItem.hpp"
#include "OpenMeca/Core/System.hpp"


namespace OpenMeca
{
  namespace Core
  {

    AutomaticItem::AutomaticItem(const std::string strType)
      :Item(strType),
       icon_(),
       treeItem_(0)
    {
    }


    AutomaticItem::~AutomaticItem()
    {
      delete treeItem_;
    }

    QIcon&
    AutomaticItem::GetIcon()
    {
      return icon_;
    }

    const QIcon&
    AutomaticItem::GetIcon() const
    {
      return icon_;
    }

    void
    AutomaticItem::Update()
    {
      std::cout << "AutomaticItem::Update()" << std::endl;
      if (treeItem_!=0)
	delete treeItem_;
      
      treeItem_ = new QTreeWidgetItem(&GetParentTreeItem());
      UpdateIcon();
      treeItem_->setIcon(0, icon_);
      treeItem_->setText(0, GetName().c_str());
    }

  }
}


